Scroll to navigation

MKTEMP(1) General Commands Manual MKTEMP(1)

NAZWA

mktemptwórz unikalną nazwę pliku tymczasowego

SKŁADNIA

mktemp [-d] [-q] [-u] wzorzec

OPIS

Narzędzie mktemp pobiera zadany wzorzec nazwy i zastępuje jego część by stworzyć nazwę pliku. Wynikowa nazwa jest unikalna i nadaje się do używania jako nazwa pliku. Wzorzec może być dowolną nazwą pliku z dodanymi do niej dokładnie sześcioma znakami ‘X’, na przykład /tmp/temp.XXXXXX. Końcowe ‘X’ zastępowane są przez numer bieżącego procesu i/lub unikalną kombinację liter. Liczba unikalnych nazw plików, jakie może zwrócić mktemp daje około 26 ** 6 kombinacji.

Jeśli mktemp może pomyślnie utworzyć unikalną nazwę pliku, to tworzony jest plik z prawami 0600 (chyba że podano flagę -u) zaś nazwa pliku wyświetlana jest na standardowym wyjściu.

OPCJE

Dostępne są następujące opcje:

Utwórz katalog zamiast pliku.
Ciche zakończenie działania w przypadku błędu. Przydatne, gdy skrypt nie chce by komunikat o błędzie trafił na standardowe wyjście błędów.
Działaj w trybie “unsafe” (ryzykownym). Plik tymczasowy będzie skasowany (unlinked) przed zakończeniem pracy mktemp. Jest to nieco lepsze niż (3), ale nadal wprowadza `race condition' [tłum: ``wyścig'' procesów pomiędzy uzyskiwaniem unikalnych nazw i nadawaniem ich plikom]. Nie zaleca się używania tej opcji.

ZWRACANE WARTOŚCI

Narzędzie mktemp kończy pracę z wartością 0 w przypadku powodzenia, zaś 1 przy błędzie.

PRZYKŁADY

Poniższy fragment w sh(1) ilustruje proste zastosowanie mktemp, gdzie skrypt winien zakończyć pracę jeśli nie może utworzyć bezpiecznego pliku tymczasowego.

TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
echo "program output" >> $TMPFILE

W tym przypadku chcemy, by skrypt sam obsługiwał błąd.

TMPFILE=`mktemp -q /tmp/$0.XXXXXX`
if [ $? -ne 0 ]; then
	echo "$0: Can't create temp file, exiting..."
	exit 1
fi

Zauważ, że można też zamiast sprawdzania $? sprawdzać, czy $TMPFILE ma długość zerową. Pozwala to na wykonanie sprawdzenia w dalszej części skryptu (gdyż $? zostanie nadpisane przez następne polecenie powłoki).

ZOBACZ TAKŻE

mkstemp(3), mktemp(3).

HISTORIA

Narzędzie mktemp pojawiło się w OpenBSD.

20 listopada 1996 Linux 5.14.0-427.18.1.el9_4.x86_64